Build Scripts এবং External Tools Integration

Java Technologies - অ্যাপাচি অ্যান্ট (Apache ANT)
364
364

Apache ANT হল একটি অত্যন্ত কাস্টমাইজেবল বিল্ড টুল যা Java প্রকল্পের জন্য কার্যকরী, তবে এটি অন্যান্য প্ল্যাটফর্মেও ব্যবহৃত হতে পারে। ANT একটি XML ভিত্তিক বিল্ড স্ক্রিপ্ট (build.xml) ব্যবহার করে, যা একাধিক টাস্ক এবং টার্গেট সংজ্ঞায়িত করে। ANT এর সবচেয়ে বড় সুবিধা হলো এটি সহজেই external tools এবং third-party libraries এর সাথে ইন্টিগ্রেট করা যায়। এতে বিভিন্ন বিল্ড প্রক্রিয়া যেমন কোড কম্পাইলেশন, টেস্টিং, ডিপ্লয়মেন্ট ইত্যাদি স্বয়ংক্রিয়ভাবে পরিচালনা করা যায়।

এই অংশে, আমরা Build Scripts এবং External Tools Integration এর মধ্যে সম্পর্ক এবং কিভাবে ANT বিল্ড স্ক্রিপ্ট ব্যবহার করে external tools সংযুক্ত করা যায় তা আলোচনা করবো।


1. Build Scripts

ANT এর মূল শক্তি হলো তার build.xml ফাইল, যেখানে প্রকল্পের সব কাজের নির্দেশনা (tasks) এবং বিল্ড টার্গেট (targets) থাকে। একটি typical build.xml ফাইল বিভিন্ন কাজের সমন্বয়ে থাকে, যেমন:

  • source code compilation (javac)
  • unit testing (junit)
  • jar file creation (jar)
  • deploying applications

Build Script Structure

একটি সাধারণ build.xml স্ক্রিপ্টের গঠন হতে পারে:

<?xml version="1.0" encoding="UTF-8"?>
<project name="SampleProject" default="compile" basedir=".">
    
    <!-- Define properties -->
    <property name="src.dir" value="src"/>
    <property name="build.dir" value="build"/>

    <!-- Clean old build -->
    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

    <!-- Compile the source code -->
    <target name="compile" depends="clean">
        <mkdir dir="${build.dir}"/>
        <javac srcdir="${src.dir}" destdir="${build.dir}"/>
    </target>

    <!-- Create a jar file -->
    <target name="jar" depends="compile">
        <jar destfile="dist/sample.jar" basedir="${build.dir}"/>
    </target>

    <!-- Run unit tests -->
    <target name="test" depends="compile">
        <junit>
            <test name="com.example.SampleTest"/>
            <formatter type="plain"/>
        </junit>
    </target>
    
</project>

এখানে:

  • clean: পুরনো বিল্ড ফাইলগুলো মুছে ফেলে।
  • compile: সোর্স কোড কম্পাইল করে।
  • jar: একটি .jar ফাইল তৈরি করে।
  • test: ইউনিট টেস্ট চালায়।

এই স্ক্রিপ্টে আমরা বিভিন্ন targets এবং tasks দেখতে পাচ্ছি, যেগুলি একে অপরের উপর নির্ভর করে। depends="..." ব্যবহৃত হয়েছে টার্গেটের মধ্যে নির্ভরশীলতা তৈরি করতে।


2. External Tools Integration

ANT এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হলো এটি external tools এবং third-party tools এর সাথে ইন্টিগ্রেশন করতে পারে। এটি আপনাকে Java এর বাইরে অন্যান্য টুলস যেমন Antlr, JUnit, Maven, Git, Selenium ইত্যাদি ব্যবহার করার সুযোগ দেয়।

External Tools Integration উদাহরণ

  1. JUnit Integration (Unit Testing)

ANT এ JUnit ব্যবহার করতে চাইলে, <junit> টাস্ক ব্যবহার করা হয়। এটি ANT এর মাধ্যমে ইউনিট টেস্ট চালাতে সক্ষম করে।

উদাহরণ:

<target name="test" depends="compile">
    <junit>
        <test name="com.example.TestClass"/>
        <formatter type="plain"/>
    </junit>
</target>

এখানে:

  • test টার্গেট চালানোর মাধ্যমে com.example.TestClass ক্লাসের ইউনিট টেস্ট চালানো হবে।
  1. Git Integration

ANT এ Git ব্যবহার করতে চাইলে exec টাস্ক ব্যবহার করা হয়। এটি Git কমান্ড চালাতে সাহায্য করে।

উদাহরণ:

<target name="git-pull">
    <exec executable="git">
        <arg value="pull"/>
    </exec>
</target>

এখানে:

  • git-pull টার্গেট চালানোর মাধ্যমে git pull কমান্ড চলবে, যার ফলে প্রকল্পের সর্বশেষ সংস্করণ সংগ্রহ করা হবে।
  1. Antlr Integration

Antlr (Another Tool for Language Recognition) একটি জনপ্রিয় টুল যা কম্পাইলার এবং লেক্সার তৈরিতে ব্যবহৃত হয়। ANT স্ক্রিপ্টে এটি ইন্টিগ্রেট করা যায় antlr টাস্কের মাধ্যমে।

উদাহরণ:

<target name="generate-grammar">
    <antlr infile="grammar.g" destdir="src"/>
</target>

এখানে:

  • grammar.g ফাইলটি ব্যবহার করে একটি নতুন সি, জাভা, বা পিএইচপি কোড জেনারেট করা হবে।
  1. Selenium Integration (Web Testing)

ANT স্ক্রিপ্টে Selenium ব্যবহার করে ওয়েব টেস্টিং করা সম্ভব। Selenium WebDriver ব্যবহার করে একটি টেস্ট রান করতে ANT এ exec টাস্ক ব্যবহৃত হয়।

উদাহরণ:

<target name="selenium-test">
    <exec executable="java">
        <arg value="-jar"/>
        <arg value="selenium-server-standalone.jar"/>
    </exec>
</target>

এখানে:

  • selenium-server-standalone.jar ব্যবহার করে Selenium WebDriver টেস্ট চালানো হবে।

3. Advanced External Tool Integrations

ANT এর মাধ্যমে আপনি অন্যান্য বিল্ড টুল যেমন Maven, Gradle, এবং Ivy-কে ইন্টিগ্রেট করতে পারেন। ANT থেকে Maven বা Gradle এর কাজ চালানো সম্ভব, যার মাধ্যমে আপনি একাধিক বিল্ড টুলের সুবিধা নিতে পারেন।

  1. Maven Integration: ANT স্ক্রিপ্টের মাধ্যমে Maven goals (যেমন mvn clean install) চালানোর জন্য exec টাস্ক ব্যবহার করা যেতে পারে।
<target name="maven-build">
    <exec executable="mvn">
        <arg value="clean"/>
        <arg value="install"/>
    </exec>
</target>
  1. Ivy Integration (Dependency Management): ANT এর মাধ্যমে Ivy ব্যবহার করে external libraries বা dependencies ম্যানেজ করা যেতে পারে।
<ivy:retrieve/>

এটি ivy.xml ফাইলের মাধ্যমে নির্দিষ্ট করা ডিপেনডেন্সি ডাউনলোড করে এবং প্রোজেক্টে যুক্ত করে।


4. Custom Tools Integration with exec Task

ANT এর exec টাস্কটি খুবই শক্তিশালী এবং এর মাধ্যমে আপনি কোন বাইরের কমান্ড লাইন টুল চালাতে পারেন। উদাহরণস্বরূপ, যদি আপনার কাছে একটি কাস্টম টুল থাকে যা কিছু নির্দিষ্ট কাজ সম্পাদন করে, তাহলে আপনি সেটি ANT বিল্ড স্ক্রিপ্টের মাধ্যমে ইন্টিগ্রেট করতে পারেন।

উদাহরণ:

<target name="run-custom-tool">
    <exec executable="customTool">
        <arg value="param1"/>
        <arg value="param2"/>
    </exec>
</target>

এখানে:

  • customTool কমান্ড চালানোর মাধ্যমে param1 এবং param2 প্যারামিটার সহ টুলটি রান হবে।

সারাংশ

  1. Build Scripts: ANT এর build.xml ফাইলের মাধ্যমে বিভিন্ন বিল্ড টাস্ক এবং টার্গেট সংজ্ঞায়িত করা হয়। এটি প্রকল্পের সকল বিল্ড ও প্রক্রিয়া পরিচালনা করতে ব্যবহৃত হয়।
  2. External Tools Integration: ANT স্ক্রিপ্টের মাধ্যমে বাইরের টুলস যেমন JUnit, Git, Antlr, Selenium, এবং অন্যান্য টুল ইন্টিগ্রেট করা যায়। এটি আপনাকে কোড কম্পাইলেশন, টেস্টিং, ডিপ্লয়মেন্ট এবং আরও অনেক কাজ স্বয়ংক্রিয়ভাবে করতে সহায়ক হয়।
  3. Advanced Integration: ANT এর মাধ্যমে Maven, Gradle, এবং Ivy সহ অন্যান্য বিল্ড টুলের সাথে ইন্টিগ্রেশন করা যায়। exec টাস্ক ব্যবহার করে যে কোন বাহ্যিক কমান্ড বা স্ক্রিপ্ট চালানো সম্ভব।

ANT এর মাধ্যমে বিল্ড প্রক্রিয়া এবং বাইরের টুলসের ইন্টিগ্রেশন একটি খুব শক্তিশালী এবং কাস্টমাইজেবল ব্যবস্থা তৈরি করতে পারে, যা সফটওয়্যার ডেভেলপমেন্ট প্রক্রিয়াকে আরও সহজ এবং কার্যকর করে তোলে।

common.content_added_by

Shell Script, Batch File, এবং Python Script রান করা

234
234

Apache ANT-এ আপনি বিভিন্ন স্ক্রিপ্ট, যেমন Shell Scripts, Batch Files, এবং Python Scripts রান করতে পারেন। ANT-এ স্ক্রিপ্ট রান করার জন্য সাধারণত <exec> ট্যাগ ব্যবহার করা হয়, যা আপনাকে সিস্টেম কমান্ড অথবা স্ক্রিপ্ট রান করতে দেয়।

এখানে আমরা দেখব কিভাবে ANT-এ বিভিন্ন ধরনের স্ক্রিপ্ট (Shell, Batch, Python) রান করা যায়।


1. Shell Script রান করা (Linux/macOS)

Linux বা macOS-এ একটি Shell script চালানোর জন্য ANT-এ <exec> ট্যাগ ব্যবহার করতে হয়। এটি একটি নির্দিষ্ট শেল কমান্ড বা স্ক্রিপ্ট চালাতে সাহায্য করে।

উদাহরণ: Shell Script রান করা

<target name="run-shell-script">
    <exec executable="sh">
        <arg value="scripts/myscript.sh"/>
    </exec>
</target>

এখানে:

  • executable="sh": শেল (bash, sh, zsh ইত্যাদি) চালানোর জন্য নির্দেশনা।
  • <arg value="scripts/myscript.sh"/>: আপনার স্ক্রিপ্টের পাথ।

এটি myscript.sh নামক স্ক্রিপ্টটি চালাবে যেটি scripts/ ডিরেক্টরিতে রয়েছে।

Shell Script Example (myscript.sh)

#!/bin/bash
echo "Hello from Shell Script!"

2. Batch File রান করা (Windows)

Windows-এ Batch Files চালানোর জন্য ANT-এ <exec> ট্যাগ ব্যবহার করা হয়, যেখানে আপনি cmd.exe বা অন্যান্য ব্যাচ ফাইল রান করতে পারেন।

উদাহরণ: Batch File রান করা

<target name="run-batch-file">
    <exec executable="cmd">
        <arg value="/c"/>
        <arg value="scripts/myscript.bat"/>
    </exec>
</target>

এখানে:

  • executable="cmd": Windows এর কমান্ড প্রম্পট চালানোর জন্য।
  • /c: এটি cmd কে বলে যে একটি কমান্ড রান করার পর তাকে বন্ধ করতে।
  • <arg value="scripts/myscript.bat"/>: আপনার ব্যাচ ফাইলের পাথ।

Batch File Example (myscript.bat)

echo Hello from Batch File!
pause

3. Python Script রান করা (Windows/Linux/macOS)

Python স্ক্রিপ্ট চালানোর জন্য <exec> ট্যাগ ব্যবহার করে Python ইন্টারপ্রেটারকে কল করতে হয়।

উদাহরণ: Python Script রান করা

<target name="run-python-script">
    <exec executable="python">
        <arg value="scripts/myscript.py"/>
    </exec>
</target>

এখানে:

  • executable="python": Python ইন্টারপ্রেটার চালানোর জন্য।
  • <arg value="scripts/myscript.py"/>: আপনার Python স্ক্রিপ্টের পাথ।

Python Script Example (myscript.py)

print("Hello from Python Script!")

4. স্ক্রিপ্টের আউটপুট ক্যাপচার করা

আপনি যদি স্ক্রিপ্টের আউটপুট ক্যাপচার করতে চান, তবে <exec> ট্যাগের মধ্যে outputproperty অ্যাট্রিবিউট ব্যবহার করতে পারেন।

উদাহরণ: আউটপুট ক্যাপচার করা

<target name="run-shell-script">
    <exec executable="sh" outputproperty="script.output">
        <arg value="scripts/myscript.sh"/>
    </exec>
    <echo message="${script.output}"/>
</target>

এখানে:

  • outputproperty="script.output": স্ক্রিপ্টের আউটপুট script.output নামক প্রপার্টিতে সংরক্ষণ হবে।
  • <echo message="${script.output}"/>: আউটপুটকে echo টাস্কের মাধ্যমে প্রিন্ট করা হবে।

5. স্ক্রিপ্ট রান করার পরবর্তী স্টেপে নির্ভরশীলতা

আপনি চাইলে একটি স্ক্রিপ্ট রান হওয়ার পরবর্তী স্টেপে অন্য টাস্ক বা টার্গেট চালানোর জন্য depends অ্যাট্রিবিউট ব্যবহার করতে পারেন।

উদাহরণ: স্ক্রিপ্ট রান করার পরবর্তী টাস্ক

<target name="run-shell-script" depends="another-task">
    <exec executable="sh">
        <arg value="scripts/myscript.sh"/>
    </exec>
</target>

<target name="another-task">
    <echo message="This task runs after the script finishes."/>
</target>

এখানে:

  • depends="another-task": run-shell-script টার্গেটটি another-task টার্গেটের পরে রান হবে।

6. Error Handling (ত্রুটি পরিচালনা)

ANT-এ <exec> ট্যাগ ব্যবহার করার সময় ত্রুটি হলে আপনি failonerror অ্যাট্রিবিউট ব্যবহার করে সেটি নিয়ন্ত্রণ করতে পারেন।

উদাহরণ: ত্রুটি পরিচালনা

<target name="run-shell-script">
    <exec executable="sh" failonerror="true">
        <arg value="scripts/myscript.sh"/>
    </exec>
</target>

এখানে:

  • failonerror="true": যদি স্ক্রিপ্টটি কোন ত্রুটি ফেলে, তবে ANT বিল্ড প্রক্রিয়া ব্যর্থ হয়ে যাবে।

সারাংশ

  1. Shell Script: Linux/macOS-এ sh বা অন্য শেল দিয়ে রান করা যায়।
  2. Batch File: Windows-এ cmd ব্যবহার করে ব্যাচ ফাইল রান করা যায়।
  3. Python Script: Python স্ক্রিপ্ট যেকোনো প্ল্যাটফর্মে python বা python3 দিয়ে চালানো যায়।
  4. Output Handling: স্ক্রিপ্টের আউটপুটকে ANT প্রপার্টি হিসেবে ধারণ করে পরে ব্যবহার করা যায়।
  5. Error Handling: ত্রুটি হলে বিল্ডকে থামানোর জন্য failonerror="true" ব্যবহার করা হয়।

এইভাবে, ANT-এর মাধ্যমে আপনি বিভিন্ন স্ক্রিপ্ট সহজে এবং কার্যকরভাবে চালাতে পারেন।

common.content_added_by

External Tools যেমন Git, SVN, Docker এর সঙ্গে ইন্টিগ্রেশন

217
217

Apache ANT হল একটি শক্তিশালী বিল্ড টুল যা বিভিন্ন ধরনের টাস্ক চালানোর জন্য ব্যবহৃত হয়। ANT-এর মাধ্যমে আপনি external tools যেমন Git, SVN (Subversion), এবং Docker এর সাথে ইন্টিগ্রেশন করতে পারেন। এর মাধ্যমে আপনি বিল্ড প্রক্রিয়াকে আরও স্বয়ংক্রিয় করতে পারেন এবং অন্যান্য টুলসের কার্যক্রম ANT বিল্ড স্ক্রিপ্টের মধ্যে ইনক্লুড করতে পারেন।


1. Git এর সঙ্গে ANT ইন্টিগ্রেশন

ANT-এ Git রেপোজিটরি থেকে কোড পুল বা ক্লোন করার জন্য exec টাস্ক ব্যবহার করা যেতে পারে, যা Git কমান্ডগুলো চালাতে সক্ষম।

Git ইন্টিগ্রেশন উদাহরণ:

<project name="GitIntegration" default="git-pull" basedir=".">
    
    <!-- Git Pull task -->
    <target name="git-pull">
        <!-- Run Git Pull Command -->
        <exec executable="git">
            <arg value="pull"/>
            <arg value="origin"/>
            <arg value="main"/>
        </exec>
    </target>
    
    <!-- Git Clone task -->
    <target name="git-clone">
        <!-- Run Git Clone Command -->
        <exec executable="git">
            <arg value="clone"/>
            <arg value="https://github.com/user/repo.git"/>
        </exec>
    </target>

</project>

এখানে, exec টাস্ক git pull এবং git clone কমান্ড চালাচ্ছে।

  • <exec executable="git">: এখানে git কমান্ড চালানোর জন্য exec ট্যাগ ব্যবহার করা হয়েছে।
  • <arg>: git pull বা git clone এর আর্গুমেন্ট হিসেবে বিভিন্ন ভ্যালু যোগ করা হচ্ছে।

2. SVN (Subversion) এর সঙ্গে ANT ইন্টিগ্রেশন

SVN ব্যবহার করে কোড পুল বা চেকআউট করার জন্যও exec টাস্ক ব্যবহার করা যেতে পারে। ANT-এ svn কমান্ড চালানোর জন্য এই টাস্কের সাহায্যে আপনাকে SVN কমান্ডগুলো ইনক্লুড করতে হবে।

SVN ইন্টিগ্রেশন উদাহরণ:

<project name="SVNIntegration" default="svn-checkout" basedir=".">
    
    <!-- SVN Checkout task -->
    <target name="svn-checkout">
        <exec executable="svn">
            <arg value="checkout"/>
            <arg value="https://svn.example.com/repo/trunk"/>
            <arg value="my-local-directory"/>
        </exec>
    </target>
    
    <!-- SVN Update task -->
    <target name="svn-update">
        <exec executable="svn">
            <arg value="update"/>
            <arg value="my-local-directory"/>
        </exec>
    </target>

</project>

এখানে, exec টাস্ক svn checkout এবং svn update কমান্ড চালাচ্ছে।

  • <exec executable="svn">: svn কমান্ড চালানোর জন্য exec ট্যাগ ব্যবহার হচ্ছে।
  • <arg>: svn কমান্ডের জন্য আর্গুমেন্ট নির্দিষ্ট করা হচ্ছে, যেমন রেপোজিটরি URL এবং লোকাল ডিরেক্টরি।

3. Docker এর সঙ্গে ANT ইন্টিগ্রেশন

ANT-এ Docker এর সাথে ইন্টিগ্রেশন করার জন্য exec টাস্ক ব্যবহার করা যেতে পারে, যা Docker কমান্ডগুলো চালানোর জন্য ব্যবহার করা হয়।

Docker ইন্টিগ্রেশন উদাহরণ:

<project name="DockerIntegration" default="docker-build" basedir=".">
    
    <!-- Docker Build Task -->
    <target name="docker-build">
        <exec executable="docker">
            <arg value="build"/>
            <arg value="-t"/>
            <arg value="myapp:latest"/>
            <arg value="."/>
        </exec>
    </target>
    
    <!-- Docker Run Task -->
    <target name="docker-run">
        <exec executable="docker">
            <arg value="run"/>
            <arg value="-d"/>
            <arg value="myapp:latest"/>
        </exec>
    </target>
    
    <!-- Docker Push Task -->
    <target name="docker-push">
        <exec executable="docker">
            <arg value="push"/>
            <arg value="myapp:latest"/>
        </exec>
    </target>

</project>

এখানে, exec টাস্কের মাধ্যমে Docker কমান্ডগুলো চালানো হচ্ছে।

  • docker build: এটি Docker ইমেজ তৈরি করে।
  • docker run: এটি তৈরি করা Docker ইমেজ চালু করে।
  • docker push: এটি Docker Hub বা অন্য কোনও রেজিস্ট্রিতে ইমেজ আপলোড করে।

ANT এর exec টাস্ক এর মাধ্যমে External Tools ইন্টিগ্রেশন

exec টাস্কের মাধ্যমে আপনি যেকোনো কমান্ড-লাইন টুলকে ANT বিল্ড স্ক্রিপ্টের মধ্যে ইন্টিগ্রেট করতে পারেন। এখানে, Git, SVN, এবং Docker এর কমান্ড রান করানোর জন্য exec টাস্ক ব্যবহার করা হয়েছে।

General exec Task Syntax:

<exec executable="command">
    <arg value="argument1"/>
    <arg value="argument2"/>
</exec>
  • executable: এটি সেই কমান্ড বা টুলের নাম যেটি আপনি চালাতে চান (যেমন git, svn, docker)।
  • <arg>: এখানে প্রতিটি আর্গুমেন্ট (যেমন pull, checkout, build, run ইত্যাদি) প্রদান করা হয়।

সারাংশ

  • Git: exec টাস্কের মাধ্যমে Git রেপোজিটরি থেকে কোড পুল বা ক্লোন করা যেতে পারে।
  • SVN: exec টাস্ক ব্যবহার করে SVN কমান্ডগুলো (যেমন checkout, update) চালানো যেতে পারে।
  • Docker: exec টাস্কের মাধ্যমে Docker কমান্ড যেমন build, run, এবং push চালানো সম্ভব।

ANT এর মাধ্যমে এই external tools এর ইন্টিগ্রেশন আপনাকে বিল্ড প্রক্রিয়া আরও সহজ ও অটোমেটেড করতে সহায়তা করে।

common.content_added_by

Environment Variable এবং Command-line Arguments পাস করা

303
303

Apache ANT এর মাধ্যমে বিল্ড প্রক্রিয়া চালানোর সময়, কখনো কখনো প্রয়োজন হয় environment variables বা command-line arguments ব্যবহার করার। এটি প্রজেক্টের কনফিগারেশন আরো নমনীয় (flexible) এবং কাস্টমাইজেবল (customizable) করে তোলে।

এখানে আলোচনা করা হবে কিভাবে environment variables এবং command-line arguments ANT বিল্ড ফাইলে ব্যবহার করা যায়।


1. Environment Variables ব্যবহার করা

Environment variables হল সিস্টেম স্তরের ভ্যারিয়েবল যা বিভিন্ন প্রক্রিয়া এবং অ্যাপ্লিকেশনে ব্যবহৃত হতে পারে। Apache ANT বিল্ড ফাইলের মধ্যে আপনি environment variables ব্যবহার করে কনফিগারেশন নির্ধারণ করতে পারেন। ANT বিল্ড ফাইল এই environment variables থেকে মান গ্রহণ করতে পারে এবং তাদের ভিত্তিতে বিল্ড প্রসেস চালাতে পারে।

Environment Variable Access in ANT

ANT এর মধ্যে environment variables অ্যাক্সেস করতে $ সিঙ্ক্স ব্যবহার করা হয়। এগুলি ${env.VARIABLE_NAME} এই ফরম্যাটে ব্যবহার করতে হবে।

উদাহরণ:

ধরা যাক, আপনি আপনার সিস্টেমে JAVA_HOME নামক environment variable সেট করেছেন, এবং এটি ANT বিল্ড ফাইলে ব্যবহার করতে চান।

build.xml ফাইল:

<?xml version="1.0" encoding="UTF-8"?>
<project name="SampleProject" default="compile" basedir=".">

    <!-- Access environment variable JAVA_HOME -->
    <echo message="Using JAVA_HOME: ${env.JAVA_HOME}"/>

    <target name="compile">
        <javac srcdir="src" destdir="build/classes" debug="true" source="1.8" target="1.8"/>
    </target>

</project>

এখানে ${env.JAVA_HOME} সিস্টেমের JAVA_HOME environment variable থেকে মান নিবে এবং তা কমান্ড লাইনে প্রিন্ট করবে।

Environment Variable সেট করা:

  • Windows:
    • set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_171
    • তারপর ant কমান্ড রান করুন।
  • Linux/macOS:
    • export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    • তারপর ant কমান্ড রান করুন।

2. Command-line Arguments পাস করা

ANT বিল্ড ফাইলে command-line arguments পাস করাও খুবই সহজ। ANT বিল্ড ফাইলের মধ্যে আমরা property ট্যাগের মাধ্যমে command-line arguments গ্রহণ করতে পারি।

Command-line Arguments Access in ANT

ANT-এ command-line arguments পাস করার জন্য -D অপশন ব্যবহার করা হয়, যেখানে আপনি একটি প্রপার্টি নাম এবং মান প্রদান করতে পারেন। এই মানটি build.xml ফাইলে ${propertyName} সিঙ্ক্সের মাধ্যমে অ্যাক্সেস করা যায়।

উদাহরণ:

ধরা যাক, আপনি ant কমান্ডের মাধ্যমে build.dir প্রপার্টি পাস করতে চান।

build.xml ফাইল:

<?xml version="1.0" encoding="UTF-8"?>
<project name="SampleProject" default="compile" basedir=".">

    <!-- Define property from command-line -->
    <property name="build.dir" value="${build.dir}" />

    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

    <target name="compile" depends="clean">
        <mkdir dir="${build.dir}/classes"/>
        <javac srcdir="src" destdir="${build.dir}/classes"/>
    </target>

    <target name="default" depends="compile">
        <echo message="Build completed!"/>
    </target>

</project>

এখানে, ${build.dir} প্রপার্টি কমান্ড লাইনে পাস করা হবে।

কমান্ড লাইনে পাস করা:

ant -Dbuild.dir=build/output

এটি build.dir প্রপার্টির মান হিসেবে build/output সেট করবে এবং build.xml ফাইলে এই মানটি ব্যবহার করা হবে।

বিল্ড চালানোর সময় command-line arguments:

  1. Property পাস করা:

    ant -DpropertyName=value
    

    উদাহরণ:

    ant -Dsrc.dir=src
    
  2. Multiple Properties পাস করা: একাধিক প্রপার্টি পাস করতে চাইলে, একাধিক -D অপশন ব্যবহার করতে পারেন।

    ant -Dsrc.dir=src -Dbuild.dir=build
    

3. Environment Variables এবং Command-line Arguments এর পার্থক্য

  • Environment Variables:
    • সিস্টেম বা ইউজার স্তরের ভ্যারিয়েবল, যা বিল্ড সেশন শুরু হওয়ার আগে সেট করা হয়।
    • এগুলি সাধারণত পুরো সিস্টেমে উপলব্ধ এবং একাধিক প্রক্রিয়ায় ব্যবহার করা যেতে পারে।
    • অ্যাক্সেস করার জন্য ${env.VARIABLE_NAME} সিঙ্ক্স ব্যবহৃত হয়।
  • Command-line Arguments:
    • ANT কমান্ডের মাধ্যমে সরাসরি পাস করা হয়।
    • এগুলি সাধারণত সেশন-ভিত্তিক, অর্থাৎ নির্দিষ্ট বিল্ড রান এর জন্য।
    • -D অপশন ব্যবহার করে পাস করা হয় এবং build.xml ফাইলে ${propertyName} সিঙ্ক্সের মাধ্যমে অ্যাক্সেস করা হয়।

4. সারাংশ

  • Environment Variables এবং Command-line Arguments উভয়ই ANT বিল্ড প্রক্রিয়া কনফিগার করতে ব্যবহৃত হয়।
  • Environment Variables সিস্টেম স্তরের ভ্যারিয়েবল হিসেবে ব্যবহৃত হয়, যেখানে Command-line Arguments বিল্ড রান করার সময় প্রয়োগ করা হয় এবং -D অপশন ব্যবহার করে পাস করা হয়।
  • ANT ফাইলের মধ্যে ${env.VARIABLE_NAME} এবং ${propertyName} ব্যবহার করে এগুলোর মান গ্রহণ করা হয়।

এভাবে, environment variables এবং command-line arguments ব্যবহার করে, আপনি ANT বিল্ড ফাইলকে আরো নমনীয় এবং কাস্টমাইজযোগ্য করতে পারেন, যা প্রজেক্টে বিভিন্ন কনফিগারেশন সহজে পরিচালনা করতে সাহায্য করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion